/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	EntityDef.java
 * 模块说明：	
 * 修改历史：
 * Mar 20, 2008 - lxm - 创建。
 */
package com.hd123.rumba.runtime.entitydef;

import java.util.ArrayList;
import java.util.List;

import com.hd123.rumba.runtime.CPersistent;
import com.hd123.rumba.util.ObjectUtil;

/**
 * 实体定义
 * 
 * @author lxm
 * 
 */
public class EntityDef {

  private String caption;
  private Class clazz;
  private Class<CPersistent> defClass;
  private List<FieldDef> fieldDefs = new ArrayList();

  /**
   * 取得所有的字段定义信息。
   * 
   * @return
   */
  public List<FieldDef> getFieldDefs() {
    return fieldDefs;
  }

  /**
   * 根据字段名取得对应的字段定义信息。
   * 
   * @param name
   *            指定的字段名。
   * @return 返回符合条件的字段定义信息，若找不到则返回null。
   */
  public FieldDef getFieldDefByName(String name) {
    for (FieldDef fd : fieldDefs)
      if (ObjectUtil.equals(fd.getName(), name))
        return fd;
    return null;
  }

  /** 标题 */
  public String getCaption() {
    return caption;
  }

  /** 标题 */
  public void setCaption(String caption) {
    this.caption = caption;
  }

  /** 对应实体类 */
  public Class getClazz() {
    return clazz;
  }

  /** 对应实体类 */
  public void setClazz(Class clazz) {
    this.clazz = clazz;
  }

  /** 对应的实体属性性质类 */
  public Class<CPersistent> getDefClass() {
    return defClass;
  }

  /** 对应的实体属性性质类 */
  public void setDefClass(Class<CPersistent> defClass) {
    this.defClass = defClass;
  }

}
